java无法从com类的本机(方法、对象)获取静态方法。太阳jna。出生地的
我正在使用JNA的com.sun.jna.NativeLibrary
类来加载VLCJ
本机库。我正在做一个armv8(aarch x64)-based linux device
。下面是我的代码,请注意,我使用的是最新的JNA版本jna-4.5.2
:
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), Constants.DEPLIB_OUTPUT_DIRECTORY);
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
LibXUtil.initialise();
首先我遇到了这个错误:
java.lang.UnsatisfiedLinkError: JNA native support (com/sun/jna/linux-aarch64/libjnidispatch.so) not found in resource path
快速搜索后,我发现我必须将jna本机lib目录从jar内部复制到jvm lib路径中,其中jna jar库为几乎所有已知系统预构建了库,如下图所示:
jna-4.5.2 internal content.jpeg
之后,上述异常消失,但出现了另一个异常:
java.lang.UnsatisfiedLinkError: Can't obtain static method fromNative(Method, Object) from class com.sun.jna.Native
异常是在类com中找不到来自native(method,Object)的方法。太阳jna。Native但是在反编译这个类之后,我发现这个方法已经存在
我没有主意了,知道吗,任何帮助都将受到高度赞赏,谢谢
# 1 楼答案
通过以下方式解决:
jna
模块(jar)